Docker swarm
一言で言うと
いくつかのコンテナ(service) をまとめ(stack)、stack を任意の数の node に deploy できる。
特徴
設定ファイルはdocker-compose.ymlをベースにした定義なので学習コストはk8sに比べると低い
一台の管理用managerが必要。複数のインスタンスを使う場合は node を追加し、 manager に join する。join用のコマンドはこんな感じ
コマンド体系は
serviceやnodeの数を任意の数に増減できる。
はじめかた
swarmのメリットの一つに複数のノードにサービスをデプロイできる点がある。手元の環境に作るには docker-machine を使ってvirtualbox等を使う方法もあるが、Docker/Kubernetes 実践コンテナ開発入門の中では Docker in Docker なコンテナを複数立ち上げている。 manager node で下記を実行
code:shell
$ docker swarm init
Swarm initialized: current node (llinfe99q090m0dg187hbscod) is now a manager.
To add a worker to this swarm, run the following command:
docker swarm join --token SWMTKN-1-41f9j08662uyuqdsz3bl1peztnqfc5fyhatp60amc6klup1dla-el7xt927pj4k5djjo715eztbi 172.18.0.3:2377
To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.
docker swarm join-token manager を実行するとjoin用のトークンを再表示する